<template>
  <div id="index" ref="appRef">
    <div class="bg">
      <dv-loading v-if="loading">Loading...</dv-loading>
      <div v-else class="host-body">
        <div class="d-flex jc-center">
          <dv-decoration-10 class="dv-dec-10" />
          <div class="d-flex jc-center">
            <dv-decoration-8 class="dv-dec-8" :color="decorationColor" />
            <div class="title">
              <span class="title-text">数据供应驾驶舱</span>
              <dv-decoration-6
                  class="dv-dec-6"
                  :reverse="true"
                  :color="['#50e3c2', '#67a1e5']"
              />
            </div>
            <dv-decoration-8
                class="dv-dec-8"
                :reverse="true"
                :color="decorationColor"
            />
          </div>
          <dv-decoration-10 class="dv-dec-10-s" />
        </div>

        <!-- 第二行 -->
        <div class="d-flex jc-between px-2">
          <div class="d-flex aside-width">
            <div class="react-left ml-4 react-l-s">
              <span class="react-left"></span>
              <span class="text">知识图谱供应链系统</span>
            </div>
            <div class="react-left ml-3">
              <span class="text">智慧大屏</span>
            </div>
          </div>
          <div class="d-flex aside-width">
            <div class="react-right bg-color-blue mr-3">
              <span class="text fw-b">知识图谱</span>
            </div>
            <div class="react-right mr-4 react-l-s">
              <span class="react-after"></span>
              <span class="text"
              >{{ dateYear }} {{ dateWeek }} {{ dateDay }}</span
              >
            </div>
          </div>
        </div>

        <div class="body-box">
          <!-- 调整布局 -->
          <div class="new-content-box">
            <div class="left-1">
              <dv-border-box-12>
                <centerLeft2 />
              </dv-border-box-12>
            </div>
            <div class="left-2">
              <dv-border-box-12>
                <centerLeft1 />
              </dv-border-box-12>
            </div>
            <div class="center-content">

                <center />

            </div>
            <div class="right-1">
              <dv-border-box-12>
                <centerRight1 />
              </dv-border-box-12>
            </div>
            <div class="right-2">
              <dv-border-box12>
                <centerRight2 />
              </dv-border-box12>
            </div>
          </div>

          <!-- 下方还是两个bottomRight和bottomLeft -->
          <div class="bottom-box">
            <dv-border-box-12>
              <bottomLeft />
            </dv-border-box-12>
            <dv-border-box-12>
              <bottomRight />
            </dv-border-box-12>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
import drawMixin from "../utils/drawMixin";
import { formatTime } from '../utils/index.js'
import centerLeft1 from './centerLeft1'
import centerLeft2 from './centerLeft2'
import centerRight1 from './centerRight1'
import centerRight2 from './centerRight2'
import center from './center'
import bottomLeft from './bottomLeft'
import bottomRight from './bottomRight'

export default {
  mixins: [ drawMixin ],
  data() {
    return {
      timing: null,
      loading: true,
      dateDay: null,
      dateYear: null,
      dateWeek: null,
      weekday: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
      decorationColor: ['#568aea', '#000000']
    }
  },
  components: {
    centerLeft1,
    centerLeft2,
    centerRight1,
    centerRight2,
    center,
    bottomLeft,
    bottomRight
  },
  mounted() {
    this.timeFn()
    this.cancelLoading()
    // 监听键盘事件
    window.addEventListener('keydown', this.handleKeyDown);
  },
  beforeDestroy() {
    // 调用混入中的 beforeDestroy 钩子
    if (typeof drawMixin.beforeDestroy === 'function') {
      drawMixin.beforeDestroy.call(this);
    }
    window.removeEventListener('keydown', this.handleKeyDown);
  },

  methods: {
    // 按下 Escape 返回主页
    handleKeyDown(event) {
      if (event.key === 'Escape') {
        this.$router.push('/');
      }
    },
    timeFn() {
      this.timing = setInterval(() => {
        this.dateDay = formatTime(new Date(), 'HH: mm: ss')
        this.dateYear = formatTime(new Date(), 'yyyy-MM-dd')
        this.dateWeek = this.weekday[new Date().getDay()]
      }, 1000)
    },
    cancelLoading() {
      setTimeout(() => {
        this.loading = false
      }, 500)
    }
  }
}
</script>

<style lang="scss" scoped>
@use '../assets/scss/index.scss' as *;
</style>
